document.addEventListener("DOMContentLoaded", function () {
    const button = document.getElementById("detectButton");
    const input = document.getElementById("sqlInput");
    const resultDiv = document.getElementById("result");
    const logContent = document.getElementById("logContent");

    async function detectQuery() {
        const query = input.value.trim();
        if (query === "") {
            resultDiv.textContent = "请输入 SQL 语句。";
            return;
        }

        resultDiv.textContent = "检测中...";

        try {
            const response = await fetch("/predict", {
                method: "POST",
                headers: {
                    "Content-Type": "application/json",
                },
                body: JSON.stringify({ query }),
            });

            const data = await response.json();
            resultDiv.textContent = `检测结果：${data.label}`;

            // 检测完成后刷新日志
            loadLogs();

            input.value = "";

        } catch (err) {
            resultDiv.textContent = "检测出错，请检查后端服务是否启动。";
            console.error(err);
        }
    }

    button.addEventListener("click", detectQuery);

    // 监听 textarea 键盘事件
    input.addEventListener("keydown", function (event) {
        if (event.key === "Enter") {
            if (event.ctrlKey) {
                // Ctrl+Enter → 插入换行，允许默认行为
                return;
            } else {
                // Enter → 阻止默认换行，触发检测
                event.preventDefault();
                detectQuery();
            }
        }
    });

    // 自动加载日志
    function loadLogs() {
        fetch("/logs")
            .then(response => response.text())
            .then(text => {
                logContent.textContent = text;
                // 自动滚动到底部
                logContent.scrollTop = logContent.scrollHeight;
            })
            .catch(err => {
                logContent.textContent = "无法加载日志。";
                console.error(err);
            });
    }

    // 页面加载时立即加载日志
    loadLogs();

    // 不再定时刷新！不要 setInterval(loadLogs, 1);
    // 如果你要定时刷，建议用 setInterval(loadLogs, 5000); 5秒一次
    // 但按你的要求，现在是「提交一次检测就刷新一次日志」 → 不需要 setInterval。
});
